home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- * co.c
- ******************************************************************************
- *
- * Purpose:
- * example for color coding as texture mapping
- *
- * Authors:
- * Michael Teschner and Christian Henn
- *
- * Note:
- * None.
- *
- * Revisions:
- * 10.11.93 micha Created file.
- *
- ******************************************************************************
- *
- * COPYRIGHT (C) 1992, 1993, 1994
- *
- * BY CHRISTIAN HENN M.E. MUELLER-INSTITUTE FOR MICROSCOPY (MIM)
- * HENN@COMP.BIOZ.UNIBAS.CH CH-4056 BASEL, SWITZERLAND
- *
- * AND MICHAEL WALDHERR-TESCHNER SILICON GRAPHICS INDUSTRIES (SGI)
- * MICHA@BASEL.SGI.COM CH-4125 RIEHEN, SWITZERLAND
- *
- ******************************************************************************
- *
- * PERMISSION TO USE, COPY, MODIFY AND DISTRIBUTE THIS SOFTWARE AND ITS DOCU-
- * MENTATION FOR THE PURPOSE OF RESEARCH, DEVELOPMENT AND EDUCATION IS HEREBY
- * GRANTED FREE OF CHARGE, SUBJECT TO THE FOLLOWING RESTRICTIONS:
- *
- * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS,
- * IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF DESIGN,
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A
- * COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * IN NO EVENT SHALL SILICON GRAPHICS OR THE M.E. MUELLER-INSTITUTE BE LIABLE
- * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
- * THIS SOFTWARE.
- *
- ******************************************************************************
- */
- #include <stdio.h>
- #include <gl/gl.h>
- #include <gl/device.h>
- #include <gl/get.h>
- #include <math.h>
- #include "trackball.h"
-
- int win2;
-
- float slab;
- int c_mode = 0;
-
- float rgbc[40][3];
- int rgbp[40];
-
-
- #define TEX_TRANS_INC_X 0.05
- #define TEX_TRANS_INC_Y 0.05
- #define TEX_SCALE_FAC_X 1.05
- #define TEX_SCALE_FAC_Y 1.05
- float trans_tx = 0.0;
- float trans_ty = 0.0;
- float scale_tx = 1.0;
- float scale_ty = 1.0;
-
- sbr_define_texture(int key);
- sbr_draw_texture(int key);
-
- main()
- {
- int win_id;
- int loop, dev, i, j;
- short code;
-
- foreground();
-
- win_id = winopen("surfaces");
- doublebuffer();
- RGBmode();
- gconfig();
-
- subpixel(TRUE);
-
- shademodel(GOURAUD);
- mmode(MVIEWING);
-
- sbr_ini_trackball(win_id);
- get_color();
-
- slab = or_x = or_y = or_z = 20.0;
-
- lmbind( MATERIAL, 1);
- sbr_define_texture(1);
- sbr_draw_texture(0);
- sbr_draw_texture(1); /* har har har */
-
- winset(win_id);
-
-
- qdevice( ESCKEY );
- qdevice( F1KEY );
- qdevice( F2KEY );
- qdevice( F3KEY );
- qdevice( F4KEY );
- qdevice( XKEY );
- qdevice( LEFTARROWKEY );
- qdevice( RIGHTARROWKEY );
- qdevice( UPARROWKEY );
- qdevice( DOWNARROWKEY);
-
- qdevice( TKEY );
-
- loop = TRUE;
- while(loop){
-
- if( qtest() /* || ! attached */){
-
- dev = qread(&code);
-
- if( code == 0 ) continue;
- switch(dev) {
- case ESCKEY : loop = FALSE;
- break;
- case F1KEY : c_mode = 0;
- break;
- case F2KEY : c_mode = 1;
- break;
- case F3KEY : c_mode = 2;
- break;
- case F4KEY : c_mode = 3;
- break;
- case XKEY : scale_ty = scale_tx = 1.0;
- trans_ty = trans_tx = 0.0;
- sbr_draw_texture(1);
- winset(win_id);
- break;
-
-
- case LEFTARROWKEY : if (getbutton(SKEY))
- scale_tx *= TEX_SCALE_FAC_X;
- else trans_tx += TEX_TRANS_INC_X;
- sbr_draw_texture(1);
- winset(win_id);
- break;
-
- case RIGHTARROWKEY :if (getbutton(SKEY))
- scale_tx /= TEX_SCALE_FAC_X;
- else trans_tx -= TEX_TRANS_INC_X;
- sbr_draw_texture(1);
- winset(win_id);
- break;
-
- case UPARROWKEY :if (getbutton(SKEY))
- scale_ty *= TEX_SCALE_FAC_Y;
- else trans_ty += TEX_TRANS_INC_Y;
- sbr_draw_texture(1);
- winset(win_id);
- break;
-
- case DOWNARROWKEY :if (getbutton(SKEY))
- scale_ty /= TEX_SCALE_FAC_Y;
- else trans_ty -= TEX_TRANS_INC_Y;
- sbr_draw_texture(1);
- winset(win_id);
- break;
- }
- }
-
-
- do_trackball();
- reshapeviewport();
-
-
- zclear();
- cpack(0x00000000);
- clear();
- ortho(-or_x, or_x, -or_y, or_y, -slab, slab );
-
- pushmatrix();
- loadmatrix(imat);
-
- scale(gr_sca,gr_sca,gr_sca);
- translate( g_tx, g_ty, g_tz);
- pushmatrix();
- multmatrix(rmat);
- sbr_draw_cube1();
- popmatrix();
- multmatrix(mat);
- draw_scene();
-
- popmatrix();
-
- swapbuffers();
-
-
- }
-
- winclose(win_id);
-
- }
-
- draw_scene()
- {
-
-
-
- mmode(MTEXTURE);
- loadmatrix(imat);
- scale(scale_ty,scale_tx,1.0);
- translate(trans_ty,trans_tx,0.0);
- mmode(MVIEWING);
-
- /* Check for transparency */
- if(c_mode == 3) {
- zbuffer(TRUE);
- afunction(0, AF_NOTEQUAL);
- }
- else {
- zbuffer(TRUE);
- afunction(0, AF_ALWAYS);
- }
- scale(5.0,5.0,5.0);
-
-
- switch( c_mode ){
-
- case 0: sbr_draw_cube();
- break;
- case 1: sbr_draw_Tcube();
- break;
- case 3:
- case 2: sbr_draw_2DTcube();
- break;
- }
- afunction(0, AF_ALWAYS);
- }
-
-
- /* setting up the colors and lighting model */
-
- float light[] = {
- POSITION, -2.0, 2.0, 2.0, 2.00,
- LMNULL
- };
-
- get_color()
- {
- unsigned long ri,gi,bi;
- int i;
-
- rgbc[0][0] = 0.81; rgbc[0][1] = 0.0 ; rgbc[0][2] = 0.22;
- rgbc[1][0] = 0.78; rgbc[1][1] = 0.04; rgbc[1][2] = 0.14;
- rgbc[2][0] = 0.76; rgbc[2][1] = 0.18; rgbc[2][2] = 0.07;
- rgbc[3][0] = 0.80; rgbc[3][1] = 0.35; rgbc[3][2] = 0.03;
- rgbc[4][0] = 0.68; rgbc[4][1] = 0.42; rgbc[4][2] = 0.07;
- rgbc[5][0] = 0.60; rgbc[5][1] = 0.65; rgbc[5][2] = 0.10;
- rgbc[6][0] = 0.60; rgbc[6][1] = 0.89; rgbc[6][2] = 0.18;
- rgbc[7][0] = 0.29; rgbc[7][1] = 0.84; rgbc[7][2] = 0.30;
- rgbc[8][0] = 0.10; rgbc[8][1] = 0.10; rgbc[8][2] = 0.10;
- rgbc[9][0] = 0.04; rgbc[9][1] = 0.75; rgbc[9][2] = 0.70;
- rgbc[10][0] = 0.10; rgbc[10][1] = 0.64; rgbc[10][2] = 0.89;
- rgbc[11][0] = 0.10; rgbc[11][1] = 0.50; rgbc[11][2] = 0.89;
- rgbc[12][0] = 0.10; rgbc[12][1] = 0.50; rgbc[12][2] = 0.69;
- rgbc[13][0] = 0.15; rgbc[13][1] = 0.35; rgbc[13][2] = 0.75;
- rgbc[14][0] = 0.20; rgbc[14][1] = 0.20; rgbc[14][2] = 0.90;
- rgbc[15][0] = 0.42; rgbc[15][1] = 0.16; rgbc[15][2] = 0.84;
-
- for(i=0;i<16;i++){
- ri = (unsigned long)(rgbc[i][0]*255.0) ;
- gi = (unsigned long)(rgbc[i][1]*255.0) << 8;
- bi = (unsigned long)(rgbc[i][2]*255.0) << 16;
- rgbp[i] = ri+gi+bi;
- }
-
- lmdef( DEFMATERIAL, 1, 0, NULL);
- lmdef( DEFLIGHT, 1, 0, NULL);
- lmdef( DEFLMODEL, 1, 0, NULL);
-
- lmbind( MATERIAL, 1);
- lmbind( LMODEL, 1);
- lmbind( LIGHT0, 1);
-
- } /* end get_color */
-
-
- /* setting up texture mapping */
-
- #define ARR_SIZE 16
-
-
- unsigned long arr[ARR_SIZE][ARR_SIZE]; /* Texture array */
- unsigned long *img;
-
-
- float texps[] = {
- TX_MINFILTER, TX_POINT,
- TX_MAGFILTER, TX_POINT,
- TX_WRAP_T, TX_CLAMP,
- TX_WRAP_S, TX_REPEAT,
- TX_NULL};
-
- float tevps[] = {TV_MODULATE, TV_NULL};
-
- sbr_define_texture(int key)
- {
- int i, j;
- unsigned int ri, gi, bi, ai;
- int delta;
-
- delta = ARR_SIZE;
- for (i = 0; i < delta; i++) {
- ri = rgbc[i][0] *255;
- gi = rgbc[i][1] *255;
- bi = rgbc[i][2] *255;
- for (j = 0; j < delta/2; j++) {
- arr[j][i] = ri + (gi << 8) + (bi << 16) + (255 << 24);
- }
- for (j = delta/2; j < delta; j++) {
- arr[j][i] = 0x00ffffff;
- }
- }
-
- img = arr[0];
-
- texdef2d(key, 4, delta, delta, img, 0, texps);
- tevdef(key,0,tevps);
-
- }
-
- sbr_bind_texture(int key)
- {
- if( key > 0 ){
- texbind(TX_TEXTURE_0,0);
- tevbind(TV_ENV0,0);
- texbind(TX_TEXTURE_0,key);
- tevbind(TV_ENV0,key);
- }
- else{
- texbind(TX_TEXTURE_0,0);
- tevbind(TV_ENV0,0);
-
- }
- }
- static float t1[2] = { 0.0, 0.0 };
- static float t2[2] = { 0.0, 1.0 };
- static float t3[2] = { 1.0, 1.0 };
- static float t4[2] = { 1.0, 0.0 };
-
- static float v1[3] = {-15, -15, 0.0};
- static float v2[3] = { 15, -15, 0.0};
- static float v3[3] = { 15, 15, 0.0};
- static float v4[3] = {-15, 15, 0.0};
-
-
- sbr_draw_texture(int key)
- {
-
- if( key == 0 ){
- win2 = winopen(" texture ");
- RGBmode();
- gconfig();
- sbr_define_texture(2);
- sbr_bind_texture(2);
- }
- else{
- winset(win2);
- sbr_bind_texture(0);
- sbr_bind_texture(2);
- }
-
-
- reshapeviewport();
- ortho(-or_x, or_x, -or_y, or_y, -slab, slab );
-
- mmode(MTEXTURE);
- loadmatrix(imat);
- scale(scale_ty,scale_tx,1.0);
- translate(trans_ty,trans_tx,0.0);
- mmode(MVIEWING);
-
- RGBcolor(0, 0, 0);
- clear();
- zclear();
- RGBcolor(255, 255, 255);
-
- bgnpolygon();
- t2f(t1); v3f(v1);
- t2f(t2); v3f(v2);
- t2f(t3); v3f(v3);
- t2f(t4); v3f(v4);
- endpolygon();
- sbr_bind_texture(0);
-
-
- }
-
-
- /* setting up the cube's geometry */
-
- /* 3 _ _ _ 2
- 7 _ _ |_ 6 |
- | | | |
- | | | |
- | 0 |_ |_ _| 1
- |_ _ _ _|
- 4 5
- */
-
-
- /* geometry */
- static float vr0[3] = {-1.0, -1.0, -1.0 };
- static float vr1[3] = { 1.0, -1.0, -1.0 };
- static float vr2[3] = { 1.0, 1.0, -1.0 };
- static float vr3[3] = {-1.0, 1.0, -1.0 };
- static float vr4[3] = {-1.0, -1.0, 1.0 };
- static float vr5[3] = { 1.0, -1.0, 1.0 };
- static float vr6[3] = { 1.0, 1.0, 1.0 };
- static float vr7[3] = {-1.0, 1.0, 1.0 };
-
- static float vn0[3] = { 0.0, 0.0,-1.0 };
- static float vn1[3] = { -1.0, 0.0, 0.0 };
- static float vn2[3] = { 0.0,-1.0, 0.0 };
- static float vn3[3] = { 0.0, 1.0, 0.0 };
- static float vn4[3] = { 0.0, 0.0, 1.0 };
- static float vn5[3] = { 1.0, 0.0, 0.0 };
-
- static int ci[8][2] = { { 1, 2 },
- { 3, 4 },
- { 5, 6 },
- { 7, 8 },
- { 9,10 },
- {11,12 },
- {13,14 },
- {15, 0 } };
-
- sbr_draw_cube()
- {
-
- lmbind(MATERIAL, 1);
- lmcolor(LMC_DIFFUSE);
-
- bgnpolygon(); n3f(vn0);
- cpack( rgbp[ci[0][0]] );
- v3f(vr0);
- cpack( rgbp[ci[1][0]] );
- v3f(vr1);
- cpack( rgbp[ci[2][0]] );
- v3f(vr2);
- cpack( rgbp[ci[3][0]] );
- v3f(vr3);
- endpolygon();
-
- bgnpolygon(); n3f(vn1);
- cpack( rgbp[ci[0][0]] );
- v3f(vr0);
- cpack( rgbp[ci[4][0]] );
- v3f(vr4);
- cpack( rgbp[ci[7][0]] );
- v3f(vr7);
- cpack( rgbp[ci[3][0]] );
- v3f(vr3);
- endpolygon();
-
- bgnpolygon(); n3f(vn2);
- cpack( rgbp[ci[0][0]] );
- v3f(vr0);
- cpack( rgbp[ci[4][0]] );
- v3f(vr4);
- cpack( rgbp[ci[5][0]] );
- v3f(vr5);
- cpack( rgbp[ci[1][0]] );
- v3f(vr1);
- endpolygon();
-
- bgnpolygon(); n3f(vn3);
- cpack( rgbp[ci[3][0]] );
- v3f(vr3);
- cpack( rgbp[ci[7][0]] );
- v3f(vr7);
- cpack( rgbp[ci[6][0]] );
- v3f(vr6);
- cpack( rgbp[ci[2][0]] );
- v3f(vr2);
- endpolygon();
-
- bgnpolygon(); n3f(vn4);
- cpack( rgbp[ci[4][0]] );
- v3f(vr4);
- cpack( rgbp[ci[5][0]] );
- v3f(vr5);
- cpack( rgbp[ci[6][0]] );
- v3f(vr6);
- cpack( rgbp[ci[7][0]] );
- v3f(vr7);
- endpolygon();
-
- bgnpolygon(); n3f(vn5);
- cpack( rgbp[ci[5][0]] );
- v3f(vr5);
- cpack( rgbp[ci[1][0]] );
- v3f(vr1);
- cpack( rgbp[ci[2][0]] );
- v3f(vr2);
- cpack( rgbp[ci[6][0]] );
- v3f(vr6);
- endpolygon();
-
- lmcolor(LMC_COLOR);
-
- }
-
-
- sbr_draw_cube1()
- {
-
- lmbind(MATERIAL, 0);
- lmbind(MATERIAL, 1);
-
- bgnpolygon(); n3f(vn0);
- v3f(vr0); v3f(vr1); v3f(vr2); v3f(vr3);
- endpolygon();
-
- bgnpolygon(); n3f(vn1);
- v3f(vr0); v3f(vr4); v3f(vr7); v3f(vr3);
- endpolygon();
-
- bgnpolygon(); n3f(vn2);
- v3f(vr0); v3f(vr4); v3f(vr5); v3f(vr1);
- endpolygon();
-
- bgnpolygon(); n3f(vn3);
- v3f(vr3); v3f(vr7); v3f(vr6); v3f(vr2);
- endpolygon();
-
- bgnpolygon(); n3f(vn4);
- v3f(vr4); v3f(vr5); v3f(vr6); v3f(vr7);
- endpolygon();
-
- bgnpolygon(); n3f(vn5);
- v3f(vr5); v3f(vr1); v3f(vr2); v3f(vr6);
- endpolygon();
-
- }
-
- sbr_draw_Tcube()
- {
- float tx[2];
-
- lmbind(MATERIAL, 1);
- sbr_bind_texture(1);
- tx[1] = 0;
- bgnpolygon(); n3f(vn0);
- tx[0] = 1.0/15. * ci[0][0]; t2f (tx);
- v3f(vr0);
- tx[0] = 1.0/15. * ci[1][0]; t2f(tx);
- v3f(vr1);
- tx[0] = 1.0/15. * ci[2][0]; t2f (tx);
- v3f(vr2);
- tx[0] = 1.0/15. * ci[3][0]; t2f (tx);
- v3f(vr3);
- endpolygon();
-
- bgnpolygon(); n3f(vn1);
- tx[0] = 1.0/15. * ci[0][0]; t2f (tx);
- v3f(vr0);
- tx[0] = 1.0/15. * ci[4][0]; t2f (tx);
- v3f(vr4);
- tx[0] = 1.0/15. * ci[7][0]; t2f (tx);
- v3f(vr7);
- tx[0] = 1.0/15. * ci[3][0]; t2f (tx);
- v3f(vr3);
- endpolygon();
-
- bgnpolygon(); n3f(vn2);
- tx[0] = 1.0/15. * ci[0][0]; t2f (tx);
- v3f(vr0);
- tx[0] = 1.0/15. * ci[4][0]; t2f (tx);
- v3f(vr4);
- tx[0] = 1.0/15. * ci[5][0]; t2f (tx);
- v3f(vr5);
- tx[0] = 1.0/15. * ci[1][0]; t2f (tx);
- v3f(vr1);
- endpolygon();
-
- bgnpolygon(); n3f(vn3);
- tx[0] = 1.0/15. * ci[3][0]; t2f (tx);
- v3f(vr3);
- tx[0] = 1.0/15. * ci[7][0]; t2f (tx);
- v3f(vr7);
- tx[0] = 1.0/15. * ci[6][0]; t2f (tx);
- v3f(vr6);
- tx[0] = 1.0/15. * ci[2][0]; t2f (tx);
- v3f(vr2);
- endpolygon();
-
- bgnpolygon(); n3f(vn4);
- tx[0] = 1.0/15. * ci[4][0]; t2f (tx);
- v3f(vr4);
- tx[0] = 1.0/15. * ci[5][0]; t2f (tx);
- v3f(vr5);
- tx[0] = 1.0/15. * ci[6][0]; t2f (tx);
- v3f(vr6);
- tx[0] = 1.0/15. * ci[7][0]; t2f (tx);
- v3f(vr7);
- endpolygon();
-
- c3f(rgbc[7]);
- bgnpolygon(); n3f(vn5);
- tx[0] = 1.0/15. * ci[5][0]; t2f (tx);
- v3f(vr5);
- tx[0] = 1.0/15. * ci[1][0]; t2f (tx);
- v3f(vr1);
- tx[0] = 1.0/15. * ci[2][0]; t2f (tx);
- v3f(vr2);
- tx[0] = 1.0/15. * ci[6][0]; t2f (tx);
- v3f(vr6);
- endpolygon();
-
- sbr_bind_texture(0);
- }
-
- sbr_draw_2DTcube()
- {
- float tx[2];
-
- lmbind(MATERIAL, 1);
- sbr_bind_texture(1);
-
- bgnpolygon(); n3f(vn0);
- tx[0] = 1.0/15. * ci[0][0];
- tx[1] = 1.0/15. * ci[0][1];
- t2f (tx);
- v3f(vr0);
- tx[0] = 1.0/15. * ci[1][0];
- tx[1] = 1.0/15. * ci[1][1];
- t2f(tx);
- v3f(vr1);
- tx[0] = 1.0/15. * ci[2][0];
- tx[1] = 1.0/15. * ci[2][1];
- t2f (tx);
- v3f(vr2);
- tx[0] = 1.0/15. * ci[3][0];
- tx[1] = 1.0/15. * ci[3][1];
- t2f (tx);
- v3f(vr3);
- endpolygon();
-
- bgnpolygon(); n3f(vn1);
- tx[0] = 1.0/15. * ci[0][0];
- tx[1] = 1.0/15. * ci[0][1];
- t2f (tx);
- v3f(vr0);
- tx[0] = 1.0/15. * ci[4][0];
- tx[1] = 1.0/15. * ci[4][1];
- t2f (tx);
- v3f(vr4);
- tx[0] = 1.0/15. * ci[7][0];
- tx[1] = 1.0/15. * ci[7][1];
- t2f (tx);
- v3f(vr7);
- tx[0] = 1.0/15. * ci[3][0];
- tx[1] = 1.0/15. * ci[3][1];
- t2f (tx);
- v3f(vr3);
- endpolygon();
-
-
- bgnpolygon(); n3f(vn2);
- tx[0] = 1.0/15. * ci[0][0];
- tx[1] = 1.0/15. * ci[0][1];
- t2f (tx);
- v3f(vr0);
- tx[0] = 1.0/15. * ci[4][0];
- tx[1] = 1.0/15. * ci[4][1];
- t2f (tx);
- v3f(vr4);
- tx[0] = 1.0/15. * ci[5][0];
- tx[1] = 1.0/15. * ci[5][1];
- t2f (tx);
- v3f(vr5);
- tx[0] = 1.0/15. * ci[1][0];
- tx[1] = 1.0/15. * ci[1][1];
- t2f (tx);
- v3f(vr1);
- endpolygon();
-
-
- bgnpolygon(); n3f(vn3);
- tx[0] = 1.0/15. * ci[3][0];
- tx[1] = 1.0/15. * ci[3][1];
- t2f (tx);
- v3f(vr3);
- tx[0] = 1.0/15. * ci[7][0];
- tx[1] = 1.0/15. * ci[7][1];
- t2f (tx);
- v3f(vr7);
- tx[0] = 1.0/15. * ci[6][0];
- tx[1] = 1.0/15. * ci[6][1];
- t2f (tx);
- v3f(vr6);
- tx[0] = 1.0/15. * ci[2][0];
- tx[1] = 1.0/15. * ci[2][1];
- t2f (tx);
- v3f(vr2);
- endpolygon();
-
- bgnpolygon(); n3f(vn4);
- tx[0] = 1.0/15. * ci[4][0];
- tx[1] = 1.0/15. * ci[4][1];
- t2f (tx);
- v3f(vr4);
- tx[0] = 1.0/15. * ci[5][0];
- tx[1] = 1.0/15. * ci[5][1];
- t2f (tx);
- v3f(vr5);
- tx[0] = 1.0/15. * ci[6][0];
- tx[1] = 1.0/15. * ci[6][1];
- t2f (tx);
- v3f(vr6);
- tx[0] = 1.0/15. * ci[7][0];
- tx[1] = 1.0/15. * ci[7][1];
- t2f (tx);
- v3f(vr7);
- endpolygon();
-
- c3f(rgbc[7]);
- bgnpolygon(); n3f(vn5);
- tx[0] = 1.0/15. * ci[5][0];
- tx[1] = 1.0/15. * ci[5][1];
- t2f (tx);
- v3f(vr5);
- tx[0] = 1.0/15. * ci[1][0];
- tx[1] = 1.0/15. * ci[1][1];
- t2f (tx);
- v3f(vr1);
- tx[0] = 1.0/15. * ci[2][0];
- tx[1] = 1.0/15. * ci[2][1];
- t2f (tx);
- v3f(vr2);
- tx[0] = 1.0/15. * ci[6][0];
- tx[1] = 1.0/15. * ci[6][1];
- t2f (tx);
- v3f(vr6);
- endpolygon();
-
- sbr_bind_texture(0);
- }
-